package org.voxe.android.model;
import static java.util.Collections.sort;
import java.io.Serializable;
import java.util.List;
import android.graphics.Bitmap;
import android.util.Base64;
import com.google.common.base.Optional;
public class Icon implements Serializable {
private static final long serialVersionUID = 1L;
public String prefix;
public List<Integer> sizes;
public String name;
public transient Bitmap bitmap;
private transient Optional<String> uniqueId;
private transient Optional<String> largestIconUrl;
public Optional<String> getLargestIconUrl() {
if (largestIconUrl == null) {
if (sizes.size() == 0) {
largestIconUrl = Optional.absent();
} else {
StringBuilder sb = new StringBuilder();
sb.append(prefix);
sort(sizes);
Integer largestSize = sizes.get(sizes.size() - 1);
sb.append(largestSize);
sb.append(name);
largestIconUrl = Optional.of(sb.toString());
}
}
return largestIconUrl;
}
public Optional<String> getUniqueId() {
if (uniqueId == null) {
Optional<String> largestIconUrl = getLargestIconUrl();
if (largestIconUrl.isPresent()) {
byte[] urlBytes = largestIconUrl.get().getBytes();
String encodedUrl = "tag_" + Base64.encodeToString(urlBytes, Base64.NO_WRAP);
uniqueId = Optional.of(encodedUrl);
} else {
uniqueId = Optional.absent();
}
}
return uniqueId;
}
}